﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdGiMentalRayRenderSettingsTraits : OdGiRenderSettingsTraits
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdGiMentalRayRenderSettingsTraits(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdGiMentalRayRenderSettingsTraits obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdGiMentalRayRenderSettingsTraits()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdGiMentalRayRenderSettingsTraits(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public new static OdGiMentalRayRenderSettingsTraits cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_cast(OdRxObject.getCPtr(pObj));
			OdGiMentalRayRenderSettingsTraits result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMentalRayRenderSettingsTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMentalRayRenderSettingsTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMentalRayRenderSettingsTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_desc(), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_isA(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdGiMentalRayRenderSettingsTraits createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_createObject();
			OdGiMentalRayRenderSettingsTraits result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMentalRayRenderSettingsTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMentalRayRenderSettingsTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMentalRayRenderSettingsTraits)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setSampling(int min, int max)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setSampling(this.swigCPtr, min, max);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void sampling(out int min, out int max)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_sampling(this.swigCPtr, out min, out max);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSamplingFilter(OdGiMrFilter filter, double width, double height)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setSamplingFilter(this.swigCPtr, (int)filter, width, height);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void SamplingFilter(out OdGiMrFilter filter, out double width, out double height)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_SamplingFilter(this.swigCPtr, out filter, out width, out height);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSamplingContrastColor(float r, float g, float b, float a)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setSamplingContrastColor(this.swigCPtr, r, g, b, a);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void samplingContrastColor(out float r, out float g, out float b, out float a)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_samplingContrastColor(this.swigCPtr, out r, out g, out b, out a);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setShadowMode(OdGiMrShadowMode mode)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setShadowMode(this.swigCPtr, (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrShadowMode shadowMode()
		{
			OdGiMrShadowMode result = (OdGiMrShadowMode)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_shadowMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setShadowMapEnabled(bool enabled)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setShadowMapEnabled(this.swigCPtr, enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool shadowMapEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_shadowMapEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setRayTraceEnabled(bool enabled)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setRayTraceEnabled(this.swigCPtr, enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool rayTraceEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_rayTraceEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setRayTraceDepth(int reflection, int refraction, int sum)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setRayTraceDepth(this.swigCPtr, reflection, refraction, sum);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void rayTraceDepth(out int reflection, out int refraction, out int sum)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_rayTraceDepth(this.swigCPtr, out reflection, out refraction, out sum);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setGlobalIlluminationEnabled(bool enabled)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setGlobalIlluminationEnabled(this.swigCPtr, enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool globalIlluminationEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_globalIlluminationEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setGISampleCount(int num)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setGISampleCount(this.swigCPtr, num);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual int giSampleCount()
		{
			int result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_giSampleCount(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setGISampleRadiusEnabled(bool enabled)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setGISampleRadiusEnabled(this.swigCPtr, enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool giSampleRadiusEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_giSampleRadiusEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setGISampleRadius(double radius)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setGISampleRadius(this.swigCPtr, radius);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual double giSampleRadius()
		{
			double result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_giSampleRadius(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setGIPhotonsPerLight(int num)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setGIPhotonsPerLight(this.swigCPtr, num);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual int giPhotonsPerLight()
		{
			int result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_giPhotonsPerLight(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setPhotonTraceDepth(int reflection, int refraction, int sum)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setPhotonTraceDepth(this.swigCPtr, reflection, refraction, sum);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void photonTraceDepth(out int reflection, out int refraction, out int sum)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_photonTraceDepth(this.swigCPtr, out reflection, out refraction, out sum);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setFinalGatheringEnabled(bool enabled)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setFinalGatheringEnabled(this.swigCPtr, enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool finalGatheringEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_finalGatheringEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setFGRayCount(int num)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setFGRayCount(this.swigCPtr, num);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual int fgRayCount()
		{
			int result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_fgRayCount(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setFGRadiusState(bool bMin, bool bMax, bool bPixels)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setFGRadiusState(this.swigCPtr, bMin, bMax, bPixels);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void fgSampleRadiusState(out bool bMin, out bool bMax, out bool bPixels)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_fgSampleRadiusState(this.swigCPtr, out bMin, out bMax, out bPixels);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setFGSampleRadius(double min, double max)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setFGSampleRadius(this.swigCPtr, min, max);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void fgSampleRadius(out double min, out double max)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_fgSampleRadius(this.swigCPtr, out min, out max);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setLightLuminanceScale(double luminance)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setLightLuminanceScale(this.swigCPtr, luminance);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual double lightLuminanceScale()
		{
			double result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_lightLuminanceScale(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setDiagnosticMode(OdGiMrDiagnosticMode mode)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setDiagnosticMode(this.swigCPtr, (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrDiagnosticMode diagnosticMode()
		{
			OdGiMrDiagnosticMode result = (OdGiMrDiagnosticMode)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_diagnosticMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setDiagnosticGridMode(OdGiMrDiagnosticGridMode mode, float fSize)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setDiagnosticGridMode(this.swigCPtr, (int)mode, fSize);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void diagnosticGridMode(out OdGiMrDiagnosticGridMode mode, out float fSize)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_diagnosticGridMode(this.swigCPtr, out mode, out fSize);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setDiagnosticPhotonMode(OdGiMrDiagnosticPhotonMode mode)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setDiagnosticPhotonMode(this.swigCPtr, (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrDiagnosticPhotonMode diagnosticPhotonMode()
		{
			OdGiMrDiagnosticPhotonMode result = (OdGiMrDiagnosticPhotonMode)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_diagnosticPhotonMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setDiagnosticBSPMode(OdGiMrDiagnosticBSPMode mode)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setDiagnosticBSPMode(this.swigCPtr, (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrDiagnosticBSPMode diagnosticBSPMode()
		{
			OdGiMrDiagnosticBSPMode result = (OdGiMrDiagnosticBSPMode)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_diagnosticBSPMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setExportMIEnabled(bool enabled)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setExportMIEnabled(this.swigCPtr, enabled);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual bool exportMIEnabled()
		{
			bool result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_exportMIEnabled(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setExportMIFileName(string miName)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setExportMIFileName(this.swigCPtr, miName);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual string exportMIFileName()
		{
			string result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_exportMIFileName(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setTileSize(int size)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setTileSize(this.swigCPtr, size);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual int tileSize()
		{
			int result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_tileSize(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setTileOrder(OdGiMrTileOrder order)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setTileOrder(this.swigCPtr, (int)order);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrTileOrder tileOrder()
		{
			OdGiMrTileOrder result = (OdGiMrTileOrder)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_tileOrder(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setMemoryLimit(int limit)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setMemoryLimit(this.swigCPtr, limit);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual int memoryLimit()
		{
			int result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_memoryLimit(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setEnergyMultiplier(float fScale)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setEnergyMultiplier(this.swigCPtr, fScale);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual float energyMultiplier()
		{
			float result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_energyMultiplier(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setProgressMonitor(IntPtr pMonitor)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setProgressMonitor(this.swigCPtr, pMonitor);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual IntPtr progressMonitor()
		{
			IntPtr result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_progressMonitor(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setExposureType(OdGiMrExposureType type)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setExposureType(this.swigCPtr, (int)type);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrExposureType exposureType()
		{
			OdGiMrExposureType result = (OdGiMrExposureType)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_exposureType(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setFinalGatheringMode(OdGiMrFinalGatheringMode mode)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setFinalGatheringMode(this.swigCPtr, (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrFinalGatheringMode finalGatheringMode()
		{
			OdGiMrFinalGatheringMode result = (OdGiMrFinalGatheringMode)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_finalGatheringMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setShadowSamplingMultiplier(double multiplier)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setShadowSamplingMultiplier(this.swigCPtr, multiplier);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual double shadowSamplingMultiplier()
		{
			double result = GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_shadowSamplingMultiplier(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setExportMIMode(OdGiMrExportMIMode mode)
		{
			GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_setExportMIMode(this.swigCPtr, (int)mode);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMrExportMIMode exportMIMode()
		{
			OdGiMrExportMIMode result = (OdGiMrExportMIMode)GlobalsPINVOKE.OdGiMentalRayRenderSettingsTraits_exportMIMode(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		private object locker = new object();

		private HandleRef swigCPtr;
	}
}
